/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Interface;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

/**
 * Tourelle créées par le power-up "missiles à tête chercheue". 
 * Elles tirent des missiles à tête chercheuse automatiquement sur les ennemis.
 * @author Laurent
 */    


public class Tourelle extends Canon{

    public Projectile projectileTire=null;
    public ElementDuJeu laCible=null;
    Monde monde;
    Tourelle cetteTourelle=this;
    
    /**
     * Appèle la méthode pour faire tirer la tourelle.
     */
    Thread tempsTirTourelles = new Thread() {

        @Override
        public synchronized  void run() {
            while (true) {
                try {
                    Thread.sleep(1200);
                } catch (InterruptedException ex) {
                }
                monde.tirTourelles(cetteTourelle);
            }

        }
    };

    /**
     * Constructeur de la tourelle. Démarre le thread qui lui permet de tirer.
     * @param monde Monde dans lequel la tourelle est créée.
     * @param prototype True se mode prototype est activé.
     */
    public Tourelle(Monde monde, boolean prototype) {
        super(prototype);
        this.monde=monde;
        tempsTirTourelles.start();
    }

    /**
     * S'oriente selon l'emplacement de sa cible.
     * @param newX Position en x du bout du canon de la tourelle.
     * @param newY Position en y du bout du canon de la tourelle.
     */
    @Override
    public void bouger(double newX, double newY) {
        super.bouger(newX, newY);
    }

    /**
     * Dessine la tourelle. Petit canon orange (prototype) ou blanc.
     * @param g Permet de dessiner.
     */
    @Override
    public void paintComponent(Graphics g) {
        if (prototype){
        g.setColor(Color.orange);}
        else{
        g.setColor(Color.white);}
        
        Graphics2D g2d = (Graphics2D) g;
        g2d.setStroke(new BasicStroke(3));
        g2d.drawLine(xDebutCanon, yDebutCanon, orientationX, orientationY);
    }
    


}
